import axios from 'axios'
import {getToken} from '@/utils/auth'
import router from '../router'
import {Message} from "element-ui";

axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
// 创建axios实例
const service = axios.create({
    // axios中请求配置有baseURL选项，表示请求URL公共部分
    // baseURL: process.env.VUE_APP_BASE_API,
    baseURL: 'http://api.pipi.com/api/',
    // 超时
    timeout: 10000
})
// request拦截器
service.interceptors.request.use(config => {
    // 是否需要设置 token
    const isToken = (config.headers || {}).isToken === false
    if (getToken() && !isToken) {
        config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
    }
    // return config

    /*// 1: 得到当前的token,并携带到后端
    let token = sessionStorage.getItem("Web-User-Token");
    if (token) {
        // 如果有值，就设置进请求头中
        config.headers['Web-User-Token'] = token;
    }*/
    return config;
}, error => {
    console.log(error)
    Promise.reject(error)
})

service.interceptors.response.use(response => {
    if (!response.data.code && response.data.code !== undefined) {
        // 未登录，重定向到登录页面
        router.push('/');
    } else if (response.data.code === 200) {
        return response.data;
    } else if (response.data.code === 500) {
        Message({
            type: "error",
            message: response.data.msg,
            duration: 1000
        })
        // vue.$router.push("/")     // 可以跳转到登录页面，但会报错
        // this.$router.go(-1);
    } else if (response.data.code === 401) {
        alert('权限不足,请先登录')
        return Promise.reject('error');
    }

    return response.data;
}, error => {
    return Promise.reject(error);
});

export default service
